/**
 * 
 */
package com.lanswon.qzsmk.service.systemManageService;

import java.util.List;
import java.util.Map;

import com.lanswon.qzsmk.model.RolePrivilege;
import com.lanswon.qzsmk.model.SysPermission;
import com.lanswon.qzsmk.vo.MenuVo;

/**
 * @author sun
 *
 */
public interface PrivilegeManageService {

	/**
	 * 保存数据权限
	 * 
	 * @param dp
	 */
//	void saveDataPrivilege(DataPrivilege dp) throws Exception;

	/**
	 * 检查是否存在
	 * 
	 * @param resource
	 * @return
	 */
//	boolean existPrivilegeResource(String resource) throws Exception;

	/**
	 * 新数据结构 保存数据权限
	 * 
	 * @param dp
	 */
	void saveDataPrivilege_1(SysPermission dp) ;

	/**
	 * 新数据结构 检查是否存在
	 * 
	 * @param resource
	 * @return
	 */
	boolean existPrivilegeResource_1(String resource) throws Exception;

	/**
	 * 查询
	 * @param name 权限名称
	 * @return
	 * @throws Exception
	 */
	boolean existPrivilegeName(String name) throws Exception;


	/**
	 * 显示该角色所有的权限
	 * 
	 * @param menu
	 * @return
	 */
	List<MenuVo> querySysPermissionMenus();
	
	/**
	 * 查询该角色已设置权限(备用)
	 * 
	 * @param menu
	 * @return
	 */
	List<MenuVo> querySysPermissionByRoleId(Integer roleId);
	
	/**
	 * 查询该角色已设置权限(新)
	 * @param roleId
	 * @return
	 */
	List<Integer> querySysPermissionByRoleId_1(Integer roleId);
	

	/**
	 * 设置权限
	 * @param rp
	 */
	void setAuthForRole(RolePrivilege rp);
	
	/**
	 * 取消权限
	 * @param rp
	 */
	void cancelAuthForRole(RolePrivilege rp);
	
	/**
	 * 通过权限名称检查是否存在该 权限
	 * @param list
	 * @param sy
	 */
	Map<String, Object> checkNameAndSave(List<SysPermission> list, SysPermission sy);	
	
	/**
	 * 查询所有权限
	 * @return
	 */
	List<SysPermission> queryAllSysPermission();

}
